package cl.tinet.tarea6.dao;

import java.util.List;

import cl.tinet.tarea6.model.Usuario;

import javax.persistence.Query;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class UsuarioDaoImpl implements UsuarioDao {

	EntityManager em;

	public UsuarioDaoImpl(EntityManager em) {

		this.em = em;
	}

	/**
	 * Metodo creaar usuario
	 */
	public void crear(Usuario usuario) {
		em.persist(usuario);
	}

	/**
	 * Metodo eliminar
	 */
	public void eliminar(Usuario usuario) {

		em.remove(usuario);
	}

	/**
	 * Metodo Buscar por username 
	 */
	public Usuario buscarUsername(String usernameBusqueda) {

		Usuario resultadaFinal = null;

		if (usernameBusqueda != null) {
			
			String sql = "Select u FROM usuarios u WHERE u.username =:usernameNUEVO";
			Query consulta = em.createQuery(sql).setParameter("usernameNUEVO",
					usernameBusqueda);

			Usuario resultado = (Usuario) consulta.getSingleResult();
			resultadaFinal = resultado;
		}


		return resultadaFinal;

	}
	
	/**
	 * Metodo mostrar todos 
	 */
	public List<Usuario> lista() {

		String sql = "Select u FROM usuarios u";
		Query consulta = em.createQuery(sql);
		List<Usuario> resultado = consulta.getResultList();
		return resultado;

	}

}